{
  enum Week {
    Sun,
    Mon,
    Tue,
    Wed,
    Thu,
    Fri,
    Sat,
  }

  console.assert(Week["Sun"] === 0);
}

{
  enum Week {
    Sun = 7,
    Mon = 1,
    Tue,
    Wed,
    Thu,
    Fri,
    Sat,
  }

  console.assert(Week["Tue"] === 2);
}

{
  enum Week {
    Sun = 7,
    Mon = 1.5,
    Tue,
    Wed,
    Thu,
    Fri,
    Sat,
  }

  console.assert(Week["Tue"] === 2.5);
}

// computed member
{
  enum Color {
    Red,
    Green,
    Blue = "blue".length,
  }

  console.log(Color.Red);
  console.log(Color.Green);
  console.log(Color.Blue);
}

// const enum
// - removed when compling
// - cannot include computed member
{
  const enum Directions {
    Up,
    Down,
    Left,
    Right,
  }

  let directions = [
    Directions.Up,
    Directions.Down,
    Directions.Left,
    Directions.Right,
  ];

  // const enum Color {
  //   Red,
  //   Green,
  //   Blue = "blue".length,
  // }
}
